#include<bits/stdc++.h>
using namespace std;

int num;	// 组数
int a[100005];	// 输入
int group[100005];	// group[i]表示第i组当前最大的数
int length[100005];	// len[i]表示第i组的长度

int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	sort(a + 1, a + n + 1);
	
	// 组数为1~num，在此范围找不小于a[i]的最小数，其对应下标-1的位置需要是a[i]-1，否则放入新组
	for (int i = 1; i <= n; i++) {
		int idx = lower_bound(group + 1, group + num + 1, a[i]) - group;
		if (idx - 1 > num || group[idx - 1] != a[i] - 1) {
			length[++num] = 1;
			group[num] = a[i];
		} else {
			length[idx - 1]++;
			group[idx - 1]++;
		}
	}
//	for (int i = 1; i <= num; i++)
//		cout << length[i] << " ";
//	cout << endl;
	cout << *min_element(length + 1, length + num + 1);
	return 0;
}
